Модуль:Corall
local p = {} --Список загонов-- local arrData = mw.loadData( 'Module:DataCorall' ) local animal = mw.loadData( 'Module:DataAnimal' ) local materials = mw.loadData( 'Module:DataMaterials' ) function p.list() local data =getcorall() local total=0 local text='' for key, v in pairs(data) do text=text.."".. ""..v.name.."".. ""..v.buy.."".. ""..v.level.."".. ""..v.buyagro.."".. ""..v.levelagro.."".. ""..v.c.."".. ""..v.location.."" total=total+1 end return " ".. " Всего: "..total.." ".. " Название ".. " Цена 15px ".. " Уровень для 15px ".. " Цена 15px ".. " Уровень для 15px ".. " Количество животных ".. " Локация ".. " "..text.. " " end --Массив для списка-- function getcorall() local data={} local j=1 for key,v in pairs(arrData) do if pcall(function () if v.buy nil then error() end end) then dataj={name=v.name,c=v.c} dataj.buy=(v.buy 0) and "" or v.buy dataj.level=(v.level 0) and "" or v.level dataj.buyagro=(v.buyagro 0) and "" or v.buyagro dataj.levelagro=(v.levelagro 0) and "" or v.levelagro else dataj={name=v.name,c='',buy='',level='',buyagro='',levelagro=''} end local ok, msg = pcall(function () if v.location nil then error() end end) if ok then if v.location '' then dataj.location="Любые" else dataj.location=""..v.location.."" end else dataj.location='' end j=j+1 end table.sort(data,function( a, b ) return a.name < b.name end ) return data end --Карточка загона-- function p.corall( frame ) local id = frame.args1 local text=' [[Файл:'..arrDataid.name..'tree.png|240px]] '.. ' Название: '..arrDataid.name..' '.. ' Тип: Загоны ' --Цена и уровень- text=text..' Загон можно купить:'.. ' ' if arrDataid.buy~=0 then text=text..' ' if arrDataid.level~=0 then text=text..'с '..arrDataid.level..' уровня ' end text=text..'за '..arrDataid.buy..' 15px ' end if arrDataid.buyagro~=0 then text=text..' ' if arrDataid.levelagro~=0 then text=text..'с '..arrDataid.levelagro..' уровня ' end text=text..'за '..arrDataid.buyagro..' 15px ' end text=text..' '.. ' Максимальное количество животных в загоне: '..arrDataid.c..' '.. ' ' text=text..' Локация ' if arrDataid.location '' then text=text..' Можно строить в любой локации. ' else text=text..' Можно строить только в локации [['..arrDataid.location..']]. ' end --Стройматериалы-- text=text..build(id) --Животнеы в загоне-- text=text..animalInCorall(id) return text end -- --Стройматериалы-- function build(id) local text=' Строительство ' local ok, msg = pcall(function () if arrDataid.materials nil then error() end end) if ok then text=text..' После покупки загон необходимо еще построить, для этого нужно будет купить материалы. ' else text=text..'Загон строится мгновенно, сразу же при покупке. Материалы для постройки загона не нужны.' return text end text=text..' '.. ' '.. ' '.. ' Материалы '.. ' Количество '.. ' Цена 15px '.. ' Стоимость 15px '.. ' ' local total=0 for i,v in ipairs(arrDataid.materials) do --Проверка на наличие материалов в модуле-- local ok, msg = pcall(function () if materialsv.name.buy nil then error() end end) if ok then text= text..' '.. ' 50px '.. ' '..v.name..' '.. ' '..v.c..' '.. ' '..materialsv.name.buy..' '.. ' '..materialsv.name.buy*v.c..' '.. ' ' total=total+materialsv.name.buy*v.c else text= text..' '.. ' '..v.name..' '.. ' '.. ' '.. ' ' end i=i+1 end text= text..' '.. ' Итого: '.. ' '.. ' '.. ' '.. ' '..total..' '.. ' ' text=text..' ' return text end --Список животных для загона-- function animalInCorall(frame) local id='' if type(frame) 'string' then id=frame elseif type(frame) 'table' then id= frame.args1 end local text=' Животные для загона '.. ' В загоне можно разместить животных: '.. ' ' for key,v in pairs(animal) do if v.corall id then text=text..' '..key..' ' end end return text end return p